//
//  XQSleepModel.h
//  XQBluetoothSDK
//
//  Created by 包月兴 on 16/6/21.
//  Copyright © 2016年 包月兴. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
///睡眠质量
typedef NS_ENUM(NSInteger,XQSleepQuality){
    ///深睡
    XQSleepQualityDeep = 1,
    ///浅睡
    XQSleepQualitySimple,
};
@interface XQSleepModel : NSObject
///睡眠日期(格式 YYYYMMdd "20160612")
@property (nonatomic,assign) NSInteger date;
///运动开始秒(0~86400 一天划分成86400秒)
@property (nonatomic,assign) NSInteger start_ts;
///运动结束秒(0~86400 一天划分成86400秒)
@property (nonatomic,assign) NSInteger end_ts;
///睡眠质量等级
@property (nonatomic,assign) XQSleepQuality quality;
/**
 *  某天睡眠详情(异步)
 *
 *  @param date        日期(yyyyMMdd)
 *  @param compeletion 完成(sleeps--> XQSleepModel数组,deepDuration-->深睡时长(分钟),simpleDuration浅睡时长(分钟),sleepTime -->入睡时间(分钟)) getUpTime --> 起床时间(分钟) sleepHeart -->睡眠基准心率
 */
+(void)gainSleepDetailWithDate:(NSInteger)date compeletion:(void(^)(NSArray<XQSleepModel *>*sleeps,NSInteger deepDuration,NSInteger simpleDuration,NSInteger startTime,NSInteger getUpTime,NSInteger sleepHeart))compeletion;

/**
 *  某天睡眠详情(同步)
 *
 *  @param date 日期(yyyyMMdd)
 *
 *  @return 完成(sleeps--> XQSleepModel数组,deepDuration-->深睡时长(分钟),simpleDuration浅睡时长(分钟)),sleepTime -->入睡时间(分钟)) getUpTime --> 起床时间(分钟) sleepHeart -->睡眠基准心率
 */
+(NSDictionary *)gainSleepDetailWithDate:(NSInteger)date;

/**
 *  周统计(异步)
 *
 *  @param serial      序号(从0递增 0表示本周 1标示上周)
 *  @param compeletion 完成(averageDeepDuration-->均深睡时长,averageSimpleDuration-->均浅睡时长,description-->描述周时间段区间(如：本周,上周,7/3-7/9等等),totalDay-->统计天数)
 */
+(void)gainWeekCountDetailWithSerial:(NSInteger)serial compeletion:(void(^)(NSInteger averageDeepDuration,NSInteger averageSimpleDuration,NSString *description,NSInteger totalDay))compeletion;

/**
 *  周统计(同步)
 *
 *  @param serial 序号(从0递增 0表示本周 1标示上周)
 *
 *  @return  @(averageDeepDuration-->均深睡时长,averageSimpleDuration-->均浅睡时长,description-->描述周时间段区间(如：本周,上周,7/3-7/9等等),totalDay-->统计天数)
 */

+(NSDictionary *)gainWeekCountDetailWithSerial:(NSInteger)serial;

/**
 *  月统计(异步)
 *
 *  @param serial      序号(从0递增 0表示本月 1标示上月)
 *  @param compeletion 完成(averageDeepDuration-->均深睡时长,averageSimpleDuration-->均浅睡时长,description-->描述月份(如：本月,上月,5月等等),totalDay-->统计天数)
 */
+(void)gainMonthCountDetailWithSerial:(NSInteger)serial compeletion:(void(^)(NSInteger averageDeepDuration,NSInteger averageSimpleDuration,NSString *description,NSInteger totalDay))compeletion;

/**
 *  月统计(异步)
 *
 *  @param serial      序号(从0递增 0表示本月 1标示上月)
 *  @return @(averageDeepDuration-->均深睡时长,averageSimpleDuration-->均浅睡时长,description-->描述月份(如：本月,上月,5月等等)，totalDay-->统计天数)
 */
+(NSDictionary *)gainMonthCountDetailWithSerial:(NSInteger)serial;

/**
 清除睡眠数据
 
 @param startDate 开始日期
 @param endDate   结束日期
 */
+(void)deleteSleepDataWithStartDate:(NSInteger)startDate endDate:(NSInteger)endDate;

/**
 清除某天睡眠数据
 
 @param date 日期
 */
+(void)deleteSleepDateWithDate:(NSInteger)date;

@end
